package com.example;

/**
 * @desc:
 * @author: Shoko
 * @date: 2025/5/25
 */
public class PrinterSalesTest {
    public static void main(String[] args) {
        // 创建打印机实例
        Printer printer = new Printer("HP LaserJet Pro", 1200.0);

        // 测试默认策略（无折扣）
        System.out.println("=== 默认策略（无折扣） ===");
        System.out.printf("%s 原价: %.2f, 折后价: %.2f%n",
                printer.getName(), printer.getPrice(), printer.calculatePrice());

        // 设置固定金额折扣策略（减200）
        printer.setDiscountStrategy(new FixedAmountStrategy(200));
        System.out.println("\n=== 固定金额折扣（减200） ===");
        System.out.printf("%s 原价: %.2f, 折后价: %.2f%n",
                printer.getName(), printer.getPrice(), printer.calculatePrice());

        // 设置百分比折扣策略（15%）
        printer.setDiscountStrategy(new PercentageStrategy(15));
        System.out.println("\n=== 百分比折扣（15%） ===");
        System.out.printf("%s 原价: %.2f, 折后价: %.2f%n",
                printer.getName(), printer.getPrice(), printer.calculatePrice());

        // 测试边缘情况（折扣后价格为负）
        printer.setDiscountStrategy(new FixedAmountStrategy(1500));
        System.out.println("\n=== 边缘测试（折扣后价格为负） ===");
        System.out.printf("%s 原价: %.2f, 折后价: %.2f%n",
                printer.getName(), printer.getPrice(), printer.calculatePrice());
    }
}
